# 基于 nginx:1.17.9 镜像构建
FROM nginx:1.17.9

# 指定信息
LABEL maintainer="hogwarts@ceshiren.com"

# 设置环境变量 容器内的目录 work_pwd=/data/html/
ENV NGINX_VERSION 1.17.9
ARG work_pwd=/data/html/

# 切换 root 用户
USER root

# 执行命令，安装 curl 软件，设置软链接把 nginx 服务的日志显示到终端输出
#（解释：apt-get -yp update更新apt-get服务，
#  (解释：ln -sf /dev/stdout /var/log/nginx/access.log设置软链接，将enginx的访问日志映射到宿主机/dev/stdout路径上）
#  (解释：ln -sf /dev/stderr /var/log/nginx/error.log设置软链接，将enginx的错误日志映射到宿主机/dev/stderr路径上）
# ( 设置链接以后，使用docker logs命令就可以直接查看日志信息了)
# RUN apt-get -yp update && apt-get install -y curl && \
# RUN ln -sf /dev/stdout /var/log/nginx/access.log && ln -sf /dev/stderr /var/log/nginx/error.log

# 挂载卷
VOLUME ["/data"]

# 设置容器的工作目录
WORKDIR $work_pwd

# 复制宿主机的 index.html 文件到 WORKDIR 目录下
COPY index.html .

# 映射 80 端口
EXPOSE 80

# 此处 CMD 作为 ENTRYPOINT 的参数
CMD ["nginx","-g","daemon off;"]
# CMD ["-g","daemon off;"]
# CMD nginx -g daemon off
# 设置容器启动的命令
#ENTRYPOINT ["nginx","-g","daemon off;"]

# 当使用docker stop命令停止容器的时候，它会发送SIGRTMAX这个指令让nginx去停止
STOPSIGNAL SIGRTMAX

# 检查容器健康，通过访问 Nginx 服务 80 端口，来判断容器服务是否健康
# --interval=5s 每5秒去访问容器里的nginx服务：http://localhost/，--timeout=3s指令执行后3秒还没返回数据就会报错
# || exit 1 或者执行退出（前面的命令执行不成功就执行退出命令）
HEALTHCHECK --interval=5s --timeout=3s CMD curl -fs http://localhost/ || exit 1